﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.EntityClient;
using MySql.Data.MySqlClient;
using CajaChica.Interfaces;
using CajaChica.Entidades;
namespace CajaChica.Clases 
{
    class clsTipoCambio 
    {
        cajaEntities objCajaEntidades;
        public void Guardar(DateTime fecha, decimal compra, decimal venta)
        {
            objCajaEntidades = new cajaEntities();
            tipo_cambio tipoCambio = new tipo_cambio 
            { 
                fecha = fecha,
                precio_compra = compra,
                precio_venta = venta
            };
            objCajaEntidades.AddTotipo_cambio(tipoCambio);
            objCajaEntidades.SaveChanges();
        }

        public void GuardarCambios(int id, DateTime fecha, decimal compra, decimal venta)
        {
            objCajaEntidades = new cajaEntities();
            tipo_cambio tipoCambio = objCajaEntidades.tipo_cambio.FirstOrDefault(
                a => a.id == id);
            tipoCambio.fecha = fecha;
            tipoCambio.precio_compra = compra;
            tipoCambio.precio_venta = venta;
            objCajaEntidades.SaveChanges();
        }

        public void Eliminar(DateTime fecha)
        {
            objCajaEntidades = new cajaEntities();
            tipo_cambio tipoCambio = objCajaEntidades.tipo_cambio.FirstOrDefault(
                tp => tp.fecha == fecha);
            objCajaEntidades.DeleteObject(tipoCambio);
            objCajaEntidades.SaveChanges();
        }

        public ArrayList CargarDatosGridView()
        {
            ArrayList lista = new ArrayList();

            objCajaEntidades = new cajaEntities();
            var query = from tc in objCajaEntidades.tipo_cambio
                        orderby tc.fecha
                        select new 
                        { 
                            CODIGO = tc.id,
                            FECHA = tc.fecha,
                            COMPRA = tc.precio_compra,
                            VENTA = tc.precio_venta
                        };

            foreach (var datos in query)
            {
                lista.Add(datos);
            }
            return lista;
        }

        public void CargarDatosComboBox()
        {
            
        }

        public ArrayList Buscar(DateTime criterio)
        {
            ArrayList lista = new ArrayList();

            objCajaEntidades = new cajaEntities();
            var query = from tc in objCajaEntidades.tipo_cambio
                        where tc.fecha.Equals(criterio)
                        select new
                        {
                            CODIGO = tc.id,
                            FECHA = tc.fecha,
                            COMPRA = tc.precio_compra,
                            VENTA = tc.precio_venta
                        };

            foreach (var datos in query)
            {
                lista.Add(datos);
            }
            return lista;
        }

        public DataSet CargarDatosCrystalReports()
        {
            DataSet ds = new DataSet();
            cajaEntities ca = new cajaEntities();
            string cad = ((EntityConnection)ca.Connection).StoreConnection.ConnectionString;
            string query = "select fecha, precio_compra, precio_venta from tipo_cambio " +
              " order by fecha;";
            MySqlConnection cn = new MySqlConnection(cad);
            MySqlDataAdapter da = new MySqlDataAdapter(query, cn);
            da.Fill(ds, "tipo_cambio");
            return ds;
        } 
    }
}
